package com.bauer.base.designpattern.strategy;

import java.util.HashMap;
import java.util.Map;

/**
 * @Author ：rui.wei
 * @Date ：Created in 15:05 2019/7/2
 * @Description：
 */
public class StrategyFactory {

    /**
     *
     * 当策略很多的时候我们可以使用策略工厂  来管理我们的策略
     *
     * 对于StrategyMap的初始化可以使用
     * 1.静态块初始换
     * 2.人工添加
     * 3.在spring中还可以通过获取某类型的bean进行初始化map
     */
    private static Map<String, Strategy> stringStrategyMap = new HashMap<>();


    static {
        stringStrategyMap.put("1", new StrategyOne());
    }

    public void putStrategy(String key, Strategy strategy) {
        stringStrategyMap.put(key, strategy);
    }

    public void strategyMethod(String key) {
        stringStrategyMap.get(key).strategyMethod();

    }
}
